/************************************************************************

								Heroes IV
					  Copyright 2002, The 3DO Company

	------------------------------------------------------------------
  						 drag_artifact_source_holder.h

	$Header: $

	$NoKeywords: $

 ************************************************************************/

#ifndef DRAG_ARTIFACT_SOURCE_HOLDER_H_INCLUDED
#define DRAG_ARTIFACT_SOURCE_HOLDER_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class t_drag_artifact_source;
class t_drag_artifact;
class t_window;

// ---------------------------------------------------------------------------
// The abstract interface of something that holds a t_drag_artifact_source
// (normally a dialog window ) which wants to be notified of things happening 
// to the artifact.
// ---------------------------------------------------------------------------
class t_drag_artifact_source_holder
{
	public:
		virtual ~t_drag_artifact_source_holder() {};

		virtual void accept_artifact_drag( t_drag_artifact* drag, t_drag_artifact_source* dest ) = 0;
		virtual void artifact_accepted( t_drag_artifact_source * source, t_window * target ) = 0;
		virtual void begin_artifact_drag( t_drag_artifact_source* source ) = 0;
		virtual void restore( t_drag_artifact_source* source ) = 0;
		virtual	void update_artifacts() = 0;
};

#endif // DRAG_ARTIFACT_SOURCE_HOLDER_H_INCLUDED